介绍
适配器模式将一个类的接口转接成用户所期待的,有助于避免大规模改写现有客户代码。
In software engineering, the adapter pattern is a software design pattern that allows the interface of an existing class to be used from another interface. It is often used to make existing classes work with others without modifying their source code.
例:电源转换器,我们国家的电器使用普通的扁平两项或三项插头,而去外国的话,使用的标准就不一样了,比如德国,使用的是德国标准,是两项圆头的插头。如果去德国旅游,那么我们使用的手机充电器插头无法插到德国的插排中去,那就意味着我们无法给手机充电。怎样解决这个问题呢?只要使用一个电源转化器就行了。
例子:购物车
Shopping Cart Example with Local Storage
1 | function ShoppingCart() {} |
1 | var cart = new ShoppingCart(); |
上面代码中通过 localStorage 存储购物车的数据。若此时改变需求,需要通过服务器端存储,这时你不得不改变现有的代码,此时更好的实现方式时引入”适配器”。
Shopping Cart Example with Adapters
1 | // jQuery deferreds and promises |
1 | // jQuery deferreds and promises. |
1 | function ShoppingCart(adapter) { |
1 | // localStorageAdapter |
例子:日志记录
1 | // 当前 logger |
1 | // 另一个 logger |
1 | var ShortLogger = require('./ShortLogger'); |
1 | var ShortLogger = require('./ShortLogger'); |
相关阅读
The Adapter Pattern in JavaScript
Design Patterns - The Adapter Pattern in JavaScript